﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Configuration;
using System.IO;

namespace Formation_Entreprise
{
    /// <summary>
    /// La classe ConnectionBD est utiliser afin d'obtenir la connection à la
    /// base de données et afin de modifier celle-ci.
    /// </summary>
    class ConnectionBD
    {
        /// <summary>
        /// Methode afin d'obtenir la chaine de connection a la base de données, qui elle
        /// est inscrite dans le fichier de connection.
        /// </summary>
        /// <returns>Retourne la connection sous forme OleDbConnection.</returns>
        public static OleDbConnection ObtenirConnection()
        {
            string ConString = string.Empty;

            try
            {
                // Creation d'un StreamReader, utilisation du using pour 
                // fermeture automatique
                using (StreamReader sr = new StreamReader("../../document/ConnectionString.txt"))
                {
                    ConString = sr.ReadLine();
                }
            }
            catch (Exception e)
            {
                // On laisse savoir à l'usager qu'une erreur c'est produite
                System.Windows.Forms.MessageBox.Show("Impossible de lire le fichier de connection: " + e.Message);      
            }

            OleDbConnection Connection = new OleDbConnection(ConString);
            return Connection;
        }


        /// <summary>
        /// Methode afin d'obtenir la chaine de connection a la base de données, qui elle
        /// est inscrite dans le fichier de connection.
        /// </summary>
        /// <returns>Retourne la connection sous form de chaine de caractères.</returns>
        public static string ObtenirConnectionString()
        {
            string ConString = string.Empty;

            try
            {
                // Creation d'un StreamReader, utilisation du using pour 
                // fermeture automatique
                using (StreamReader sr = new StreamReader("../../document/ConnectionString.txt"))
                {
                    ConString = sr.ReadLine();
                }
            }
            catch (Exception e)
            {
                // On laisse savoir à l'usager qu'une erreur c'est produite
                System.Windows.Forms.MessageBox.Show("Impossible de lire le fichier de connection: " + e.Message);

            }

            return ConString;
        }


        /// <summary>
        /// Methode qui modifie la chaine de connection a la base de données.
        /// </summary>
        /// <param name="path">Le chemin d'accès de la base de données.</param>
        public static void ModifierConnectionString(string path) 
        {
            // Utilisation d'un StreamWriter afin d'inscrire la nouvelle chaine de connection
            using (StreamWriter sw = new StreamWriter("../../document/ConnectionString.txt"))
            {
                sw.Write("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path);
            }
        }
    }
}
